const shellSort = (array)=>{
    // 不做直接插入，分多个有序空间
    if(array.length<=1) return array;
    var gap = Math.floor(array.length / 2)
    while(gap>0){
        // console.log(gap)
        for(let i=gap;i<array.length;i++){
            // console.log(i)
            let j = i;
            var temp = array[j];
            while(j>0 && array[j-gap]>temp){
                array[j]=array[j-gap];
                j-=gap;
                // console.log(j,array[j-gap],array[j-gap]>temp)
            }
            array[j]=temp
        }
        gap=Math.floor(gap/2)
    }
    return array
}
const array=[5,3,9,12,6,1,7,2,4,11,8,10]
console.log(shellSort(array))